import junit.framework.TestCase;
import org.junit.Test;
public class ComplexTest extends TestCase {
    Complex c1 = new Complex(1.0, 2.0);
    Complex c2 = new Complex(2.0, 2.0);
    Complex c3 = new Complex(2.0, 0.0);
    Complex c4 = new Complex(1.0, 3.0);
    Complex c5 = new Complex(2.0, 4.0);
    Complex c6 = new Complex(1.0, 3.0);

    @Test
    public void testComplexAdd() throws Exception {
        assertEquals("3.0+4.0i", c1.ComplexAdd(c2).toString());
        assertEquals("3.0+2.0i", c1.ComplexAdd(c3).toString());
        assertEquals("4.0+2.0i", c2.ComplexAdd(c3).toString());
        assertEquals("3.0+7.0i", c4.ComplexAdd(c5).toString());
        assertEquals("2.0+6.0i", c4.ComplexAdd(c6).toString());
        assertEquals("3.0+7.0i", c5.ComplexAdd(c6).toString());
    }

    @Test
    public void testComplexSub() throws Exception {
        assertEquals("-1.0", c1.ComplexSub(c2).toString());
        assertEquals("-1.0+2.0i", c1.ComplexSub(c3).toString());
        assertEquals("0.0+2.0i", c2.ComplexSub(c3).toString());
        assertEquals("-1.0-1.0i", c4.ComplexSub(c5).toString());
        assertEquals("0.0", c4.ComplexSub(c6).toString());
        assertEquals("1.0+1.0i", c5.ComplexSub(c6).toString());
    }

    @Test
    public void testComplexMulti() throws Exception {
        assertEquals("-2.0+6.0i", c1.ComplexMulti(c2).toString());
        assertEquals("2.0+4.0i", c1.ComplexMulti(c3).toString());
        assertEquals("4.0+4.0i", c2.ComplexMulti(c3).toString());
        assertEquals("-10.0+10.0i", c4.ComplexMulti(c5).toString());
        assertEquals("-8.0+6.0i", c4.ComplexMulti(c6).toString());
        assertEquals("-10.0+10.0i", c5.ComplexMulti(c6).toString());
    }

    @Test
    public void testComplexComplexDiv() throws Exception {
        assertEquals("0.75+0.75i", c1.ComplexDiv(c2).toString());
        assertEquals("1.0+0.5i", c1.ComplexDiv(c3).toString());
        assertEquals("1.0+1.0i", c2.ComplexDiv(c3).toString());
        assertEquals("0.6+1.0i", c4.ComplexDiv(c6).toString());
        assertEquals("0.6+1.0i", c4.ComplexDiv(c6).toString());
        assertEquals("1.0+1.4i", c5.ComplexDiv(c6).toString());
    }
}
